home *** CD-ROM | disk | FTP | other *** search
- package org.apache.xalan.xslt;
-
- import java.io.FileNotFoundException;
- import java.io.IOException;
- import java.net.MalformedURLException;
- import org.apache.xalan.xpath.xml.MutableAttrListImpl;
- import org.apache.xalan.xpath.xml.QName;
- import org.apache.xalan.xpath.xml.XMLParserLiaison;
- import org.apache.xalan.xpath.xml.XMLParserLiaisonDefault;
- import org.apache.xalan.xpath.xml.XSLMessages;
- import org.w3c.dom.Node;
- import org.xml.sax.AttributeList;
- import org.xml.sax.SAXException;
-
- public class ElemExtensionCall extends ElemLiteralResult {
- String m_extns;
- String m_extHandlerLookup;
- String localPart;
- AttributeList m_attrs;
- transient boolean isAvailable = false;
- String m_lang;
- String m_srcURL;
- String m_scriptSrc;
- Class m_javaClass;
-
- public int getXSLToken() {
- return 79;
- }
-
- ElemExtensionCall(XSLTEngineImpl var1, Stylesheet var2, String var3, String var4, String var5, String var6, String var7, String var8, AttributeList var9, int var10, int var11) throws SAXException {
- super(var1, var2, var7, var9, var10, var11);
- this.m_extHandlerLookup = new String("ElemExtensionCall:" + var3);
- this.m_extns = var3;
- this.m_lang = var4;
- this.m_srcURL = var5;
- this.m_scriptSrc = var6;
- if (this.m_lang.equals("javaclass") && this.m_srcURL != null) {
- try {
- String var12 = this.m_srcURL;
- boolean var13 = false;
- if (var12.startsWith("class:")) {
- var12 = var12.substring(6);
- var13 = true;
- }
- } catch (Exception var14) {
- throw new XSLProcessorException(((Throwable)var14).getMessage(), var14);
- }
- }
-
- this.m_attrs = new MutableAttrListImpl(var9);
- this.localPart = var8;
- this.m_attrs = new MutableAttrListImpl(var9);
- }
-
- public boolean elementIsAvailable() {
- return this.isAvailable;
- }
-
- public void execute(XSLTEngineImpl var1, Node var2, Node var3, QName var4) throws XSLProcessorException, MalformedURLException, FileNotFoundException, IOException, SAXException {
- try {
- var1.flushPending();
- XMLParserLiaisonDefault var5 = (XMLParserLiaisonDefault)var1.getXMLProcessorLiaison();
- ExtensionNSHandler var9 = (ExtensionNSHandler)var5.m_extensionFunctionNamespaces.get(this.m_extns);
- if (var9 == null) {
- var9 = new ExtensionNSHandler(var1, this.m_extns);
- var9.setScript(this.m_lang, this.m_srcURL, this.m_scriptSrc);
- var5.addExtensionElementNamespace(this.m_extns, var9);
- }
-
- var9.processElement(this.localPart, this, var1, super.m_stylesheet, var2, var3, var4, this.m_javaClass, this);
- } catch (Exception var8) {
- String var6 = ((Throwable)var8).getMessage();
- if (var6 != null) {
- if (var6.startsWith("Stopping after fatal error:")) {
- var6 = var6.substring("Stopping after fatal error:".length());
- }
-
- var1.message(XSLMessages.createMessage(98, new Object[]{var6}));
- }
-
- this.isAvailable = false;
-
- for(ElemTemplateElement var7 = super.m_firstChild; var7 != null; var7 = var7.m_nextSibling) {
- if (var7.getXSLToken() == 57) {
- var7.execute(var1, var2, var3, var4);
- }
- }
-
- }
- }
-
- public String getAttribute(String var1) {
- String var2 = this.m_attrs.getValue(var1);
- return var2;
- }
-
- public String getAttribute(String var1, Node var2, XSLTEngineImpl var3) throws SAXException {
- if (super.m_avts != null) {
- int var4 = super.m_avts.size();
-
- for(int var5 = var4 - 1; var5 >= 0; --var5) {
- AVT var6 = (AVT)super.m_avts.elementAt(var5);
- if (var6.m_name.equals(var1)) {
- XMLParserLiaison var7 = var3.getXMLProcessorLiaison();
- return var6.evaluate(var7, var2, this, new StringBuffer());
- }
- }
- }
-
- return null;
- }
- }
-